package com.ai.aichat.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.io.Serializable;
import java.time.LocalDateTime;

/**
 * <p>
 * 对话会话表
 * </p>
 *
 * @author baomidou
 * @since 2025-09-16
 */
@Data
@ApiModel(value = "Conversations对象", description = "对话会话表")
public class Conversations implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 对话ID
     */
    @ApiModelProperty("对话ID")
    @TableId(value = "id", type = IdType.AUTO)
    private Long id;

    /**
     * 对话UUID
     */
    @ApiModelProperty("对话UUID")
    private String uuid;

    /**
     * 用户ID
     */
    @ApiModelProperty("用户ID")
    private Long userId;

    /**
     * 对话标题
     */
    @ApiModelProperty("对话标题")
    private String title;

    /**
     * 使用的AI模型
     */
    @ApiModelProperty("使用的AI模型")
    private String model;

    /**
     * 系统提示词
     */
    @ApiModelProperty("系统提示词")
    private String systemPrompt;

    /**
     * 对话状态
     */
    @ApiModelProperty("对话状态")
    private String status;

    /**
     * 消息数量
     */
    @ApiModelProperty("消息数量")
    private Integer messageCount;

    /**
     * 最后消息时间
     */
    @ApiModelProperty("最后消息时间")
    private LocalDateTime lastMessageAt;

    /**
     * 是否置顶
     */
    @ApiModelProperty("是否置顶")
    private Boolean isPinned;

    /**
     * 是否共享
     */
    @ApiModelProperty("是否共享")
    private Boolean isShared;

    /**
     * 分享令牌
     */
    @ApiModelProperty("分享令牌")
    private String shareToken;

    /**
     * 元数据
     */
    @ApiModelProperty("元数据")
    private String metadata;

    /**
     * 创建时间
     */
    @ApiModelProperty("创建时间")
    private LocalDateTime createdAt;

    /**
     * 更新时间
     */
    @ApiModelProperty("更新时间")
    private LocalDateTime updatedAt;

    /**
     * 软删除时间
     */
    @ApiModelProperty("软删除时间")
    private LocalDateTime deletedAt;
}
